package org.fast.project.common.exception;

import lombok.Getter;
import lombok.Setter;

/**
 * @author : lilith·bristol
 * @program : spring-web-archetype-exception
 * @description : 全局业务异常的顶部抽象类 其他的业务异常必须继承并实现抽象异常
 * @date : 2020-04-19 01:53
 **/

@Setter
@Getter
public abstract class AbstractBusinessException extends RuntimeException {


    /**
     * 业务异常信息
     */
    private String message;

    /**
     * 异常错误码 用于快速标识错误
     * 可用于支持国际化
     * 形式为 [功能].[错误]
     * User.NotFound
     */
    private String errorCode;

    /**
     * 异常等级 可用于
     * 通知监控日志系统
     * 执行不同的收集和通知策略
     */
    private Integer level;

    /**
     * 全局级
     * 异常扩展信息
     * 可用于支持其他需要的
     * 异常内容
     */
    private Object extendInfo;

    public AbstractBusinessException(String message) {
        super(message);
        this.setMessage(message);
    }
}
